package com.sdleyou.treepro.common.service;

import com.sdleyou.treepro.common.model.dto.MissionDTO;
import com.sdleyou.treepro.common.model.vo.MissionVO;
import com.sdleyou.treepro.common.model.vo.UserMissionVO;

import java.util.List;
import java.util.Map;

public interface UserMissionManager {

    /**
     * 当前完成任务情况
     * @param userId
     * @return
     */
    List<UserMissionVO> getMissionInfo(String userId);

    /**
     * 获取某一任务完成情况
     */
    UserMissionVO getOneMissionInfo(String userId, String type);

    /**
     * 更改任务状态
     */
    Map<String, String> updateMission(String userId, String type, Integer param);

    /**
     * 完成任务
     */
    Map<String, String> finishMission(String userId, String type, Integer multiple);

    /**
     * 更新个人任务状态
     */
    void updateMission(String userId);

    /**
     * 每日0点更新任务完成情况
     */
    void updateMission();

    /**
     * 更新任务信息
     * @param userId
     */
    void update(String userId);

    /**
     * 更新全部任务信息
     */
    void updateAll();

    /**
     * 查询首次登陆奖励情况
     * @param userId
     */
    UserMissionVO getFirstLoginInfo(String userId);
}
